<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Java Message Service</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Java_Message_Service"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Java_Message_Service rootpage-Java_Message_Service skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Java Message Service</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">
<p>L'<a href="Interface_de_programmation" title="Interface de programmation">interface de programmation</a> <b>Java Message Service (JMS)</b> permet d'envoyer et de recevoir des messages de manière <a href="Asynchronisme" title="Asynchronisme">asynchrone</a> entre applications ou composants <a href="Java_(technique)" title="Java (technique)">Java</a>. JMS permet d'implémenter une architecture de type <a href="Message-oriented_middleware" title="Message-oriented middleware">MOM</a> (message oriented <a href="Middleware" title="Middleware">middleware</a>). Un client peut également recevoir des messages de façon synchrone dans le mode de communication point à point.
</p><p>L'API JMS permet aux applications Java de s'interfacer avec des intergiciels (middleware) à messages ou MOM. Les MOM permettent des interactions entre composants applicatifs dans un cadre faiblement couplé, asynchrone et fiable.
</p>
<div class="mw-heading mw-heading2"><h2 id="Modèles_de_publication_supportés"><span id="Mod.C3.A8les_de_publication_support.C3.A9s"></span>Modèles de publication supportés</h2></div>
<p>JMS permet l'échange de messages entre deux systèmes ou plus. Ce service supporte le modèle publication-abonnement (<a href="Publish-subscribe" title="Publish-subscribe">publish-subscribe</a>) et le modèle point à point.
</p>
<div class="mw-heading mw-heading3"><h3 id="Publication_et_abonnement">Publication et abonnement</h3></div>
<p>Dans le modèle publication-abonnement, des entités s’inscrivent sur un topic pour recevoir des messages. En effet, il ne s'agit plus d'envoyer des messages sur une file (<i>queue</i>) mais sur un topic. Celui qui publie les messages et ceux qui les reçoivent ne se connaissent pas.
</p>
<div class="mw-heading mw-heading3"><h3 id="Point_à_point"><span id="Point_.C3.A0_point"></span>Point à point</h3></div>
<p>Pour le modèle point à point, le producteur publie les messages dans une file (queue) et le consommateur lit les messages de la file. Dans ce cas le producteur connaît la destination des messages et poste les messages directement dans la file du consommateur.
Pour utiliser ce modèle, le consommateur doit invoquer la méthode receive() qui est bloquante
</p>
<div class="mw-heading mw-heading2"><h2 id="Versions_de_l'API_JMS"><span id="Versions_de_l.27API_JMS"></span>Versions de l'API JMS</h2></div>
<ul><li>JMS 1.0.2b, <time class="nowrap" datetime="2001-06" data-sort-value="2001-06">juin 2001</time></li>
<li>JMS 1.1, <time class="nowrap" datetime="2002-03" data-sort-value="2002-03">mars 2002</time></li>
<li>JMS 2.0 (JSR 343), <time class="nowrap" datetime="2013-03-20" data-sort-value="2013-03-20">20 mars 2013</time></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Fournisseurs_de_service_JMS">Fournisseurs de service JMS</h2></div>
<p>Pour utiliser l'API JMS il est nécessaire d'avoir un fournisseur de service qui gère les connexions, les sessions, les destinations et les messages.
Il y a de multiples fournisseurs de service JMS :
</p>
<div class="mw-heading mw-heading3"><h3 id="Implémentation_Open_Source"><span id="Impl.C3.A9mentation_Open_Source"></span>Implémentation Open Source</h3></div>
<p>Articles sur les implémentations <a href="Open_source" title="Open source">open-source</a> de JMS :
</p>
<ul><li>Apache ActiveMQ <a href="https://en.wikipedia.org/wiki/Apache_ActiveMQ" class="extiw external" title="en:Apache ActiveMQ"><span class="indicateur-langue" title="Article en anglais : « Apache ActiveMQ »">(en)</span></a></li>
<li>OpenJMS</li>
<li>JBoss Messaging et HornetQ de <a href="JBoss" class="mw-redirect" title="JBoss">JBoss</a></li>
<li><a href="OW2_JORAM" title="OW2 JORAM">JORAM</a>, de <a href="ObjectWeb" class="mw-redirect" title="ObjectWeb">ObjectWeb</a> maintenant <a href="OW2" title="OW2">OW2</a></li>
<li>Open Message Queue, de <a href="Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a></li>
<li><a href="RabbitMQ" title="RabbitMQ">RabbitMQ</a> de Pivotal Software</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Implémentations_commerciales"><span id="Impl.C3.A9mentations_commerciales"></span>Implémentations commerciales</h3></div>
<p>Articles sur les implémentations commerciales de JMS :
</p>
<ul><li><a href="Oracle_WebLogic_Server" title="Oracle WebLogic Server">Oracle WebLogic Server</a></li>
<li>Oracle AQ</li>
<li><a href="SAP_(entreprise)" title="SAP (entreprise)">SAP</a> <a href="NetWeaver" title="NetWeaver">NetWeaver</a></li>
<li>SonicMQ</li>
<li><a href="Tibco_Software" title="Tibco Software">Tibco Software</a></li>
<li>webMethods Broker Server</li>
<li>webMethods Universal Messaging</li>
<li><a href="WebSphere_MQ" class="mw-redirect" title="WebSphere MQ">WebSphere MQ</a></li>
<li>FioranoMQ de Fiorano</li></ul>
<p>Tous les <a href="Serveur_d'applications" title="Serveur d'applications">serveurs d'applications</a> <a href="Jakarta_EE" title="Jakarta EE">Java EE</a> à partir de la version 1.4 doivent fournir un service JMS, ce service doit être accessible au travers de JCA (<a href="Java_Connector_Architecture" class="mw-redirect" title="Java Connector Architecture">Java connector architecture</a>).
</p>
<div class="mw-heading mw-heading2"><h2 id="Liens_externes">Liens externes</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.oracle.com/technetwork/java/jms/index.html">Java Message Service (Oracle)</a> (<i>site commercial</i>)</li>
<li><a rel="nofollow" class="external text" href="http://jcp.org/en/jsr/detail?id=914">JSR 914: Java Message Service (JMS) API</a> (<i>spécifications Java</i>)</li>
<li><a rel="nofollow" class="external text" href="http://jcp.org/en/jsr/detail?id=343">JSR 343 : Java Message Service 2.0</a> (<i>spécifications Java</i>)</li>
<li><a rel="nofollow" class="external text" href="https://activemq.apache.org/">Apache ActiveMQ</a></li>
<li><a rel="nofollow" class="external text" href="http://openjms.sourceforge.net/">OpenJMS</a></li></ul>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de l’informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-08-18" href="https://fr.wikipedia.org/wiki/?title=Java_Message_Service&oldid=228218373">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>